

// EventEmitter
// EventEmitter支持若干个事件监听器，当事件触发时，注册到这个事件的监听器依次被调用。
var events = require('events');
var emitter = new events.EventEmitter();
var event = "connected";

// 监听器（事件处理函数）
var listener1 = function() {
	console.log('listener1');
};

var listener2 = function() {
	console.log('listener2');
};

var listener3 = function() {
	console.log('listener3');
};

function getListenerCount(event_name) {
	var count = emitter.listenerCount(event_name);
	console.log("%s listener count: %d", event_name, count);
}

// 注册两个事件监听器
// 在队尾添加
emitter.on(event, listener1);
emitter.addListener(event, listener2); 
emitter.on(event, listener3);

getListenerCount(event);

// 触发事件
emitter.emit(event);

emitter.removeListener(event, listener1); // 从队头删除

getListenerCount(event);

emitter.emit(event);